import { ElMessage } from 'element-plus';
import { useI18n } from 'vue-i18n';

type MsgType = 'success' | 'warning' | 'info' | 'error';

/** 统一消息提示（默认 5 秒） */
export function msg(message: string, type: MsgType = 'info', duration = 5000) {
  ElMessage({   message, 
                type, 
                duration ,
                center: true,          // 文字水平居中
                offset: 240,           // 向下偏移 240px（可视区中间附近）
                grouping: true,        // 同内容只显示一条（可选）用户连点 5 次“保存” false 5 条“保存成功”堆在屏幕 true 只显示 1 条，后续重复内容不再弹出 上 
            });
}

/** 四种快捷方法 */
export const msgSuccess = (m: string, duration?: number) => msg(m, 'success', duration);
export const msgWarning = (m: string, duration?: number) => msg(m, 'warning', duration);
export const msgError   = (m: string, duration?: number) => msg(m, 'error', duration);
export const msgInfo    = (m: string, duration?: number) => msg(m, 'info', duration);

/* -------------- 任意 i18n key 拼接 -------------- */
/**
 * 任意数量 i18n key 拼接，最后一个参数可为后缀
 * 字符串 -> 直接拼接该字符
 * boolean true -> 自动冒号（中文全角、英文半角）
 * 无/false -> 不追加
 */
export function msg18n(...keys: string[]): string {
  const { t, locale } = useI18n();
  const isZh = locale.value.startsWith('zh');
  const parts = keys.map(k => t(k));
  return isZh ? parts.join('') : parts.join(' ');
}

/** // main.ts
import { ElMessage } from 'element-plus';

ElMessage.configDefaults({
  offset: 240,   // 垂直偏移
  center: true,  // 文字水平居中
  duration: 5000,
});
 */
